home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
web
/
c_cpp
/
cweb33p11a
/
cweb3.3p11a.readme
< prev
next >
Wrap
Text File
|
1994-12-27
|
7KB
|
112 lines
Short: Literate programming discipline for C/C++.
Files: cweb3.3p11a.tar.gz, cweb3.3p11a.tar.gz
Uploader: scherer@genesis.informatik.rwth-aachen.de (Andreas Scherer)
Author: levy@geom.umn.edu (Silvio Levy and Donald E. Knuth)
This is the portability implementation of Silvio Levy's and Donald Ervin
Knuth's CWEB system, version 3.3 of December 7, 1994, compiled and provided
with changefiles for ANSI-C, TURBO-C, and SAS/C 6.x and makefiles for
UNIX-make, Borland-make and SAS-make by Andreas Scherer. It is based on
the CWEB 3.1 port by Tomas Charles Willis and the CWEB 2.8 port by Carsten
Steger and the CWEB-p 3.0 distribution by Hans-Hermann Bode and Klaus
Guntermann, including all features of the original UNIX implementation like
ANSI-C and C++ support, full ASCII input capability, and more, plus all
enhancements made in these AMIGA, MSDOS, and UNIX ports plus some special
features like:
- The complete source code is capable of being recompiled with SAS/C for
AmigaOS, with Borland C/C++ 3.1 for MSDOS, and with CC, C89, and GCC
for UNIX without the need for further changes. The Amiga versions of
all three system programs are compiled and linked in genuine C++ mode.
For compilation in ANSI-C mode rename the .cc files to their .c form,
and modify the EXTENSION field in the makefile accordingly.
- The `+l' option with its argument `X' causes CWEAVE to prepend `X' to
`cwebmac.tex' in the first line of the output file. `X' may be any
string of characters (case dependent and possibly empty), e.g., if you
called CWEAVE with the option `+ldansk', the danish macro file
`danskcwebmac.tex' would be included instead of `cwebmac.tex'. The
macro file `Xcwebmac.tex' itself contains some modifications to the
original `cwebmac.tex' file as described in the documentation. There
are macro packages `dcwebmac.tex' by Andreas Scherer for German users,
`icwebmac.tex' by Giuseppe Ghib≥ for Italian users, and lately even
`fcwebmac.tex' by Denis B. Roegel for French CWEB programmers. These
macro files translate all captions used by the CWEAVE processor into
the respective languages and also include support for special
characters like umlauts (diacritics) and some other frequently used
specials according to ISO Latin-1, IBM PC International Codepage 850,
Macintosh 8-bit font table and HP Roman 8. Similar packages for other
languages can easily be added to this scheme. To date there are no
conflicting languages, so single-character strings are used.
- There are TeX macro files `ecma94.sty', `hp8.sty', `mac8.sty', and
`pc850.sty' for support of extended code tables. These have been
set up to work as `packages' for LaTeX2e too. Also included are the
files `ecma94.w', `hp8.w', `mac8.w', and `pc850.w' with appropriate
transliteration tables. The option `+a' of former versions of the
AMIGA installation is now replaced by the file `amiga_types.w', which
can be `@i'ncluded in the source files where needed.
- Two AREXX scripts for use with the CygnusEd Professional Editor were
added to this package, one for CTANGLE and CWEAVE, localized with the
help of language catalogs under AmigaOS version 2.1 or 3.0, the other
for use with the SAS/C 6.x compiler in connection with CED V3.5.
- Both CTANGLE and CWEAVE are fully localized with the help of language
catalogs and the `locale.library' of AmigaOS 2.1/3.0. Default is (of
course) English; catalogs for German and Italian are provided and
other language catalogs can easily be added. #include files with the
English, German, and Italian strings are provided for non-localized
operating systems.
- An algorithm for recursive `@i'nclude file search was adapted from the
TeX and METAFONT implementation. The current directory is searched
first, then the contents of the (possibly empty) environment variable
CWEBINPUTS, and then the (system dependent) internal defaults given in
the compile-time constants CWEBINPUTS in the respective makefiles.
- The `-o' option was added in connection with `-i' by Carsten Steger.
- Five additional CWEB example programs are included as examples for the
portability between PASCAL-WEB and C-CWEB and for the usage of the C++
features of version 3.1. The fifth example program is a simple text
converter for files with extended character codes of ISO-Latin-1,
PC-850, MAC 8-bit font, and HP 8-bit font.
- All three system programs support the `version' information command.
- All three system programs are compiled in the NEAR data segment and
can be made resident.
- The `+m' option enables ARexx communication between CWEB and the SAS/C
message browser SCMSG. Any warnings or error messages are transferred
to its list window. The behaviour of this feature can be controlled
via the external environment variable SCMSGOPT, which may be set to
any legal option string as described in the documentation of the SAS/C
development system by SAS Institute.
- The output files are only written when there are significant changes
to their contents, i.e., when a CWEB source creates multiple output
files, only those modules effected by changes will be recompiled in
the `make' process. This mechanism was taken from Preston Briggs's
NUWEB program, to whom credit is due.
Major parts of this Amiga port were done and completely tested with SAS/C
version 6.3 and SAS/C++ version 6.51 on the AMIGA. After completion the
official version [p10] of the package was re-ported to various UNIX systems
(HP 9000, HP-PA, Sun, SGI) with CC, C89, and GCC, and ported to MSDOS with
Borland C/C++ 3.1. Provided that all these ports work successfully, I am
quite sure that all bugs have been found and fixed.
New and modified features were tested on the AMIGA with SAS/C++ 6.51 in
both ANSI-C and C++ mode and on a DEC station running Ultrix 4.4 with the
DEC CC compiler. Again the resulting system was then ported to MSDOS with
Borland C/C++ 3.1, now in the form of three C++ projects (there wasn't
enough free memory to start Borland-make from within the development
environment, so Makefile.pc actually wasn't tested).
Enjoy, Andreas.
December 13, 1994.